home *** CD-ROM | disk | FTP | other *** search
/ The Original Shareware 1.1 / The Original Shareware (WeMake CDs)(Volume 1.1)(CDs, Inc)(1993).iso / 23 / super.zip / DUMB.ASM next >
Assembly Source File  |  1986-06-13  |  2KB  |  132 lines

  1.     PAGE    ,132  ; (CTRL-OH)   IBM PC PRINTER CONDENSED MODE
  2.     TITLE    TEST232 - TEST THE CUSTOM RS-232 (INT 14) DRIVERS
  3. CSEG    SEGMENT PARA PUBLIC 'CODE'
  4.     ASSUME CS:CSEG,DS:CSEG,SS:CSEG,ES:CSEG ;ALREADY SET BY DOS LOADER
  5.  
  6.     ORG    100H            ;SKIP TO END OF THE PSP
  7. ENTPT:    JMP    START            ;COM FILE ENTRY ALWAYS AT 100H
  8.  
  9. COPY    DB    '(C) Copyright 1986 Doctor Debug - All rights reserved',26
  10. ;
  11. BAUD    DW    1200            ;INIT AT 300 BAUD
  12. PARITY    DB    2            ;1=ODD, 2=NONE, 3=EVEN
  13. STOP    DB    1            
  14. WORDLEN    DB    8            ;7 OR 8
  15. ECHO    DB    0            ;0 = OFF, 1 = ON
  16. LF    DB    0            ;ADD LF IF 1, NO IF 0
  17. ;
  18. START    PROC    NEAR
  19. ;
  20. ;    FIRST INITIALIZE THE PORT
  21. ;
  22.     MOV    BL,0
  23.     MOV    AX,BAUD            ;DETERMINE BAUD RATE
  24.     CMP    AX,300        
  25.     JE    B300
  26. ;
  27.     CMP    AX,1200
  28.     JE    B1200
  29. ;
  30.     CMP    AX,2400
  31.     JE    B2400
  32. ;
  33.     CMP    AX,4800
  34.     JE    B4800
  35. ;
  36. B9600:    MOV    BL,0E0H            ;BL MUST HAVE PROPER CODE
  37.     JMP    I1
  38. ;
  39. B4800:    MOV    BL,0C0H
  40.     JMP    I1
  41. ;
  42. B2400:    MOV    BL,0AH
  43.     JMP    I1
  44. ;
  45. B1200:    MOV    BL,80H
  46.     JMP    I1
  47. ;
  48. B300:    MOV    BL,40H
  49. ;
  50. I1:    MOV    AH,PARITY        ;NOW CHECK PARITY
  51.     MOV    CL,3
  52.     SAL    AH,CL
  53.     OR    BL,AH            ;SET THOSE BITS
  54. ;        
  55.     MOV    AH,STOP            ;HANDLE STOP BITS
  56.     DEC    AH
  57.     MOV    CL,2
  58.     SAL    AH,CL
  59.     OR    BL,AH            ;SET STOP BITS
  60. ;
  61.     MOV    AH,WORDLEN        ;NOW SET WORD LENGTH
  62.     SUB    AH,5
  63.     OR    BL,AH            ;SET THESE BITS
  64. ;
  65.     MOV    AL,BL
  66.     MOV    AH,0CH
  67.     MOV    DX,0
  68.     INT    14H            ;INITS THE COMM PORT
  69. ;
  70.                     ;NOW LOOP, SENDING WHAT'S
  71.                     ;PRINTED AND PRINTING WHAT'S
  72.                     ;SENT...
  73.  
  74. LOOP:    MOV    AH,8            ;FN 8 (RECEIVE CHAR)
  75.     MOV    DX,0
  76.     INT    14H            ;SEE IF CHAR EXISTS
  77. ;
  78.     CMP    AL,0            ;NO CHAR?
  79.     JE    L1    
  80.  
  81.     MOV    DL,AL
  82.     MOV    AH,2
  83.     INT    21H            ;PRINT CHAR
  84. ;
  85.     CMP    LF,1            ;ADD LFS?
  86.     JNE    L1
  87. ;
  88.     CMP    AL,0DH            ;CR?
  89.     JNE    L1            ;NO, CONTINUE
  90. ;
  91.     MOV    DL,0AH            ;PRINT LF TOO
  92.     MOV    AH,2
  93.     INT    21H
  94. ;
  95. L1:    MOV    AH,1
  96.     INT    16H            ;CHAR AVAILABLE?
  97.     JZ    LOOP            ;NO, CONTINUE
  98. ;
  99.     MOV    AH,0
  100.     INT    16H            ;get char into al
  101.     CMP    AL,26            ;CTRL-Z?
  102.     JNE    L2            ;no
  103. ;
  104.     MOV    AH,0DH            ;CLOSE PORT
  105.     MOV    DX,0            
  106.     INT    14H            ;DO IT
  107.     RET                ;EXIT
  108. ;
  109. L2:    MOV    AH,1
  110.     MOV    DX,0
  111.     INT    14H            ;SEND CHARACTER
  112. ;
  113.     CMP    ECHO,1            ;ECHO?
  114.     JNE    LOOP            ;NO, LOOP BACK
  115. ;
  116.     MOV    DL,AL
  117.     MOV    AH,2
  118.     INT    21H
  119. ;
  120.     CMP    AL,0DH
  121.     JNE    LOOP
  122. ;
  123.     MOV    DL,0AH
  124.     MOV    AH,2
  125.     INT    21H
  126. ;
  127.     JMP    LOOP
  128. ;
  129. START    ENDP
  130. CSEG    ENDS
  131.     END    ENTPT
  132.